package lang4j.parser.generated;
//meta2 now!

import lang4j.parser.Position;
import lang4j.parser.ParsedEntity;
                              
public class IdentifierAttribute  implements FlatAttribute,ParsedEntity {

// Attributes
    private String name;
    
    Position mStart;
    Position mEnd;

    public IdentifierAttribute(){
    }

    public Position mGetStart(){
        return mStart;
    }
    public Position mGetEnd(){
        return mEnd;
    }

    public void mSetStart(Position start){
        this.mStart=start;
    }

    public void mSetEnd(Position end){
      this.mEnd=end;
    }


// Accessors ******************************************************************

    public String getName(){
        return name;
    }

    public void setName(String name){
        this.name=name;
    }


// Acceptors ******************************************************************
    public void accept(FlatAttributeVisitor visitor){
        visitor.visitIdentifierAttribute(this);
    }
    public void accept(AttributeVisitor visitor){
        visitor.visitFlatAttribute(this);
    }
    public void accept(ProductionFactorVisitor visitor){
        visitor.visitAttribute(this);
    }


// Transformers ******************************************************************
    public <T> T transform(FlatAttributeTransformer<T> transformer){
        return transformer.transformIdentifierAttribute(this);
    }
    public <T> T transform(AttributeTransformer<T> transformer){
        return transformer.transformFlatAttribute(this);
    }
    public <T> T transform(ProductionFactorTransformer<T> transformer){
        return transformer.transformAttribute(this);
    }


// Property based type identification ****************************************

    public boolean isIdentifierAttribute(){
        return true;
    }
}